1. Field
One or more embodiments disclosed herein relate to an apparatus and method for graphics processing, and more particularly, to an apparatus and method for processing ray tracing and scheduling of ray tracing operations.
2. Description of the Related Art
Three-dimensional (3D) rendering may refer to an image processing process of synthesizing data of a 3D object into an image that is observed at a given viewpoint of a camera.
As one example of a rendering method, a rasterization method may include generating an image while projecting a 3D object onto a screen may be employed. As another example of a rendering method, a ray tracing method may include generating an image by tracing a path of light incident along a ray that is emitted from a viewpoint of a camera toward each pixel of an image.
Among the above rendering methods, the ray tracing method may generate a high quality image using physical properties of light, for example, reflection, refraction, transmission, and the like. However, a significantly large amount of calculation may be utilized for ray tracing and thus, the ray tracing method may not perform rendering at a high rate.
A traversal of an acceleration structure and an intersection test between a ray and a primitive may be among the most important factors used to determine the ray tracing performance. The traversal of the acceleration structure and the intersection test may be performed up to a few times to tens of times with respect to each of the input rays. A primitive may be a primitive of a scene object, and may be, for example, a triangle.
The acceleration structure may be a spatially divided acceleration structure. The acceleration structure may be a data structure expressed by spatially dividing a scene object to be rendered. A data structure, for example, a grid, a kd-tree, a bounding volume hierarchy (BVH), and the like, may be employed as the acceleration structure.
The above traversal and intersection test may be a process which utilizes at least 70% of the calculation amount and occupies at least 90% of a memory bandwidth for the operations carried out in ray tracing. That is, traversal operations and intersection tests are relatively computationally expensive, take up relatively more bandwidth, are relatively time consuming, and consume more power relative to other operations performed in ray tracing. A unit to perform traversal or an intersection test generally includes a cache. When data required for the traversal or the intersection test is absent within the cache, a long latency may occur while reading the data from an external memory. The latency may also degrade the ray tracing performance.